/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.projeto.session.classes;


import br.com.projeto.entity.Livro;
import br.com.projeto.persistence.exception.JPADeleteException;
import br.com.projeto.persistence.exception.JPAInsertException;
import br.com.projeto.persistence.exception.JPAQueryException;

import br.com.projeto.persistence.jpa.DaoGenericImpl;

import java.util.List;



public class LivroSessionImpl extends DaoGenericImpl<Livro>  {

        private boolean validaLivro(Livro livro) {
                if (livro != null) {
                        return true;
                } else {
                        return false;
                }
        }

        public boolean addLivro(Livro livro) throws JPAInsertException {

                if (this.validaLivro(livro)) {
                        this.save(livro);
                        return true;
                } else {
                        throw new JPAInsertException("Cidade inválido");
                }

        }
         public Livro getLivro (String isbn ) throws Exception {
               Livro livro = null;
                if (isbn != null && !isbn.trim().equals("")) {
                        try {
                               livro = (Livro) this.getObject(isbn, "getPessoaPorCpf");
                               return livro;
                        } catch (Exception ex) {
                                throw new Exception(ex.getMessage());
                        }
                }else return null;
                

        }

        public boolean removeLivro(Livro livro) throws JPADeleteException {
                try {
                        if(validaLivro(livro)==true){
                            this.delete(livro);
                        }
                        return true;
                } catch (Exception ex) {
                        throw new JPADeleteException(ex.getMessage());
                }

        }
         public List<Livro> listAllLivros() throws JPAQueryException {
                List<Livro> livros = null;
                try {
                       livros = this.listObjects("listAllPessoas");
                        return livros;
                } catch (JPAQueryException ex) {
                        throw new JPAQueryException(ex.getMessage());
                }
                

        }

       
}
